package com.mida.bms.report.api;

import com.mida.bms.report.vo.DocReportPreservationRequest;
import com.mida.bms.report.vo.DocStructRequestVo;
import com.mida.tool.common.result.ActionResult;
import com.mida.tool.common.result.ListResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.context.annotation.DependsOn;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;

/**
 * @author ：wang xiao le
 * @description：TODO 结构化模板报告feign接口
 * @date ：
 */
@DependsOn("loadFromDatabasePropertyConfig")
@FeignClient(name = "docStructTemplateApi", url = "bms.report.feign.url")
public interface DocStructTemplateApi {

    /**
     * 1、保存结构化模板
     *
     * @param docStructRequestVo 结构化模板vo
     * @return
     */
    @PostMapping(value = "/docStructTemplate/add",consumes = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    ActionResult add(@RequestBody DocStructRequestVo docStructRequestVo);

    /**
     * 2.获取结构化模板回显json
     *
     * @param stTemplateInfoSoid 结构化模板基本信息soid
     * @return
     */
    @GetMapping(value = "/docStructTemplate/getTemplate",produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    ListResult<DocStructRequestVo> getTemplate(@RequestParam("stTemplateInfoSoid") Long stTemplateInfoSoid);

    /**
     * 3.1 获取报告模板缩略图
     *
     * @param stTemplateInfoSoid 结构化模板基本信息soid
     * @return
     */
    @GetMapping(value = "/docStructTemplate/getTemplatePic",produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
     ListResult<DocStructRequestVo> getTemplatePic(@RequestParam("stTemplateInfoSoid") Long stTemplateInfoSoid);


    /**
     * 4.业务态保存报告模板
     *
     * @param request 模板保存请求参数
     * @return
     */
    @PostMapping(value = "/docStructTemplate/saveTemplate",consumes = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    ActionResult saveTemplate(@RequestBody DocReportPreservationRequest request);

}
